package com.ruoyi.system.service.impl;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.utils.uuid.UUID;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.FaultDbMapper;
import com.ruoyi.system.domain.FaultDb;
import com.ruoyi.system.service.IFaultDbService;

/**
 * 故障数据库Service业务层处理
 *
 * @author ruoyi
 * @date 2025-01-20
 */
@Service
public class FaultDbServiceImpl implements IFaultDbService
{
    @Autowired
    private FaultDbMapper faultDbMapper;

    /**
     * 查询故障数据库
     *
     * @param id 故障数据库主键
     * @return 故障数据库
     */
    @Override
    public FaultDb selectFaultDbById(Long id)
    {
        return faultDbMapper.selectFaultDbById(id);
    }

    /**
     * 查询故障数据库列表
     *
     * @param faultDb 故障数据库
     * @return 故障数据库
     */
    @Override
    public List<FaultDb> selectFaultDbList(FaultDb faultDb) {
        return faultDbMapper.selectFaultDbList(faultDb);
    }


    /**
     * 查询组别
     */
    @Override
    public List<String> getDistinctGroups(){
        return faultDbMapper.getDistinctGroups();
    }
    /**
     * 新增故障数据库
     *
     * @param faultDb 故障数据库
     * @return 结果
     */
    @Override
    public int insertFaultDb(FaultDb faultDb) {
        Date currentDate = new Date();
        faultDb.setTime(currentDate);
        // 为该组生成唯一的UUID，并为该组的每行使用相同的key
        String key = UUID.randomUUID().toString().substring(0,5);  // 生成一个5位的UUID
        key += faultDb.getGroup();
        faultDb.setKey(key);  // 设置唯一key
        return faultDbMapper.insertFaultDb(faultDb);
    }

    /**
     * 修改故障数据库
     *
     * @param faultDb 故障数据库
     * @return 结果
     */
    @Override
    public int updateFaultDb(FaultDb faultDb)
    {
        return faultDbMapper.updateFaultDb(faultDb);
    }

    /**
     * 批量删除故障数据库
     *
     * @param ids 需要删除的故障数据库主键
     * @return 结果
     */
    @Override
    public int deleteFaultDbByIds(Long[] ids)
    {
        return faultDbMapper.deleteFaultDbByIds(ids);
    }

    /**
     * 删除故障数据库信息
     *
     * @param id 故障数据库主键
     * @return 结果
     */
    @Override
    public int deleteFaultDbById(Long id)
    {
        return faultDbMapper.deleteFaultDbById(id);
    }
}
